package leetcode.editor.vscdev;

import leetcode.editor.utils.*;

public class lc530 {
    /*
     * 给你一个二叉搜索树的根节点 root ，返回 树中任意两不同节点值之间的最小差值 。
     * 差值是一个正数，其数值等于两值之差的绝对值。
     */
}

class Solution {
    TreeNode pre = null;
    int min = Integer.MAX_VALUE;

    // 递归中序遍历,可将二叉搜索树视为有序数组，求相邻两个数的差值
    public int getMinimumDifference(TreeNode root) {
        if (root == null)
            return 0;
        func(root);
        return min;
    }

    public void func(TreeNode root) {
        // 左
        if (root.left != null)
            func(root.left);
        // 中
        if (pre != null)
            min = Math.min(min, root.val - pre.val);
        pre = root;
        // 右
        if (root.right != null)
            func(root.right);
    }
}